package com.game.base.x5.web.util;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;

import com.game.base.app.App;
import com.game.base.utils.NetworkUtil;
import com.tencent.smtt.sdk.WebSettings;
import com.tencent.smtt.sdk.WebView;

/**
 * Created by Su on 2019/5/28.
 */
public class WebUtil {

    /**
     * @param webView 初始化Setting
     */
    public static void initWebSettings(WebView webView) {
        WebSettings webSettings = webView.getSettings();

        //设置自适应屏幕，两者合用
        webSettings.setUseWideViewPort(false); //是否使用viewport: false：页面的宽度总是适应WebView控件宽度  true：当前页面包含viewport属性标签
        webSettings.setLoadWithOverviewMode(false); //是否使用预览模式加载界面, 缩放至屏幕的大小

        //缩放操作
        webSettings.setSupportZoom(true); //支持缩放，默认为true。是下面那个的前提。
        webSettings.setBuiltInZoomControls(true); //是否使用其内置的变焦机制。若为false，则该WebView不可缩放
        webSettings.setAllowContentAccess(true); // 同上
        webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件

        // 媒体操作
        webSettings.setMediaPlaybackRequiresUserGesture(true); // 是否通过手势触发播放媒体，默认是true，需要手势触发

        // 图片
        webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片

        //其他细节操作
        webSettings.setAllowFileAccess(true); //设置可以访问文件
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口
        webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式
        webSettings.setJavaScriptEnabled(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            webSettings.setMixedContentMode(android.webkit.WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }

        // 缓存策略
        if (NetworkUtil.isConnected(App.sInstance)) {
            webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); //关闭webview中缓存
        } else {
            webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 离线加载
        }

        webSettings.setDomStorageEnabled(true); // 开启 DOM storage API 功能
        webSettings.setDatabaseEnabled(true);   //开启 database storage API 功能
        webSettings.setAppCacheEnabled(true);//开启 Application Caches 功能
    }

    /**
     * 使用外部浏览器打开页面
     */
    public static void openUrlOnBrowser(Context context, String url) {
        Uri uri = Uri.parse(url);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        context.startActivity(intent);
    }
}
